package com.content.service;

import java.util.List;

import org.springframework.stereotype.Service;

import com.content.exception.UserExistException;
import com.content.pojo.Article;
import com.content.pojo.ArticleClass;
import com.content.pojo.ArticleClassExample;
import com.content.pojo.BelongtoKey;
import com.content.pojo.CollectKey;
import com.content.pojo.Comment;
import com.content.pojo.Focus;
import com.content.pojo.User;

/**
 * UserService.java: 提供用户操作的接口s
 * */

public interface UserService {
	
	List<User> findAllUser();
	
	void addUser(User user);
	
	List<User> getUser(User user);
	
	void updateUserLoginTime(User user);
	
	Integer findUserName(String username);
	
	Integer findUserById(String id);
	
	/*
	 * 获取个人基本信息（前台）
	 * **/
	User getUserInfo(String id);
	
	/*
	 * 更新个人信息（前台）
	 * **/
	void updateUserInfo(User user);
	
	/*修改密码（前台）
	 * **/
	void modifyPassWord(User user);
	
	/*获取个人文章分类（前台）
	 * **/
	List<ArticleClass> getUserClass(String id);
	
	/*删除个人分类（前台）
	 * **/
	void deleteUserClass(String id);
	
	/*
	 * 获取个人文章
	 * **/
	List<Article> getUserArticle(String id);
	
	/*
	 * 删除个人文章
	 * **/
	void deleteUserArticle(String id);
	
	/*
	 * 更新个人文章
	 * **/
	void updateUserArticle(Article article);
	
	/*
	 * 插入评论
	 * **/
	void insertComment(Comment comment);
	
	/*删除评论
	 * **/
	void deleteComment(Comment comment);
	
	/*
	 * 显示评论
	 * **/
	List<Comment> showComment(String articleId);
	
	/*
	 * 增加个人文章分类
	 * **/
	void addUserClass(ArticleClass articleClass);
	
	/*通过文章id获取用户id**/
	String getUserIdByArticle(String articleId);
	
	/*模糊搜索文章（通过文章标题）**/
	List<Article> searchArticleByWord(String title);
	
	/*更新文章数**/
	void updateUserAticleNum(User user);
	

	/*个人文章分类**/
	void addArticleMapToClass(BelongtoKey belongtoKey);
//	
	/*根据分类获取文章**/
	List<Article> getArticleInClass(String classId);
	
	/*根据分类id来获取分类信息**/
	ArticleClassExample queryClassInfo(String classId);
	
	/*添加用户收藏文章
	 * **/
	void addCollection(CollectKey collectKey);
	
	/*取消用户收藏**/
	void deleteCollection(CollectKey collectKey);
	
	/*添加用户关注**/
	void addFocus(Focus focus);
	
	/*取消用户关注**/
	void deleteFocus(Focus focus);
	
	/*根据文章id来显示评论**/
	List<Comment> getCommentsByArticle(String articleId);
	
	/*查看朋友圈**/
	List<Focus> findFriend(String userId);
	
	
	/*查看朋友圈评论**/
	List<Focus> showCommentInFocus(String userId);

}
